{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Python绘制箱形图分析北京天气数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 箱形图\n",
    "箱形图（Box-plot）又称为盒须图、盒式图或箱线图，是一种用作显示一组数据***分散情况***的统计图。\n",
    "\n",
    "#### 箱形图的图形组成\n",
    "对于一组数字，先将其从小到达排列，然后计算图中元素：\n",
    "<img src=\"./datas/other_files/ant_boxplot.png\" style=\"width:600px; margin: 0 0;\"/>\n",
    "\n",
    "#### 箱形图的价值\n",
    "1. 直观明了地识别数据中的异常值\n",
    "2. 利用箱线图判断数据的偏态和尾重\n",
    "3. 利用箱线图比较几批数据的形状"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "sns.set(style=\"whitegrid\")\n",
    "sns.set(rc={'figure.figsize':(11.7,8.27)})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "实例目标：对比北京2019年天气数据中，4个季度的温度分布对比"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 读取北京天气数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(\"./datas/beijing_tianqi/beijing_tianqi_2019.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ymd</th>\n",
       "      <th>bWendu</th>\n",
       "      <th>yWendu</th>\n",
       "      <th>tianqi</th>\n",
       "      <th>fengxiang</th>\n",
       "      <th>fengli</th>\n",
       "      <th>aqi</th>\n",
       "      <th>aqiInfo</th>\n",
       "      <th>aqiLevel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-01-01</td>\n",
       "      <td>1℃</td>\n",
       "      <td>-10℃</td>\n",
       "      <td>晴~多云</td>\n",
       "      <td>西北风</td>\n",
       "      <td>1级</td>\n",
       "      <td>56</td>\n",
       "      <td>良</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-01-02</td>\n",
       "      <td>1℃</td>\n",
       "      <td>-9℃</td>\n",
       "      <td>多云</td>\n",
       "      <td>东北风</td>\n",
       "      <td>1级</td>\n",
       "      <td>60</td>\n",
       "      <td>良</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-01-03</td>\n",
       "      <td>2℃</td>\n",
       "      <td>-7℃</td>\n",
       "      <td>霾</td>\n",
       "      <td>东北风</td>\n",
       "      <td>1级</td>\n",
       "      <td>165</td>\n",
       "      <td>中度污染</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          ymd bWendu yWendu tianqi fengxiang fengli  aqi aqiInfo  aqiLevel\n",
       "0  2019-01-01     1℃   -10℃   晴~多云       西北风     1级   56       良         2\n",
       "1  2019-01-02     1℃    -9℃     多云       东北风     1级   60       良         2\n",
       "2  2019-01-03     2℃    -7℃      霾       东北风     1级  165    中度污染         4"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 把温度列从字符串变成数字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 把最高温度列，从2℃的形式，变成数字\n",
    "df[\"bWendu\"] = df[\"bWendu\"].str.replace(\"℃\", \"\").astype(float)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 365 entries, 0 to 364\n",
      "Data columns (total 9 columns):\n",
      " #   Column     Non-Null Count  Dtype  \n",
      "---  ------     --------------  -----  \n",
      " 0   ymd        365 non-null    object \n",
      " 1   bWendu     365 non-null    float64\n",
      " 2   yWendu     365 non-null    object \n",
      " 3   tianqi     365 non-null    object \n",
      " 4   fengxiang  365 non-null    object \n",
      " 5   fengli     365 non-null    object \n",
      " 6   aqi        365 non-null    int64  \n",
      " 7   aqiInfo    365 non-null    object \n",
      " 8   aqiLevel   365 non-null    int64  \n",
      "dtypes: float64(1), int64(2), object(6)\n",
      "memory usage: 25.8+ KB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 根据天日期添加季度数字列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取季度数字\n",
    "df[\"quarter\"] = pd.to_datetime(df[\"ymd\"]).dt.quarter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ymd</th>\n",
       "      <th>bWendu</th>\n",
       "      <th>yWendu</th>\n",
       "      <th>tianqi</th>\n",
       "      <th>fengxiang</th>\n",
       "      <th>fengli</th>\n",
       "      <th>aqi</th>\n",
       "      <th>aqiInfo</th>\n",
       "      <th>aqiLevel</th>\n",
       "      <th>quarter</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-01-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-10℃</td>\n",
       "      <td>晴~多云</td>\n",
       "      <td>西北风</td>\n",
       "      <td>1级</td>\n",
       "      <td>56</td>\n",
       "      <td>良</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-01-02</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-9℃</td>\n",
       "      <td>多云</td>\n",
       "      <td>东北风</td>\n",
       "      <td>1级</td>\n",
       "      <td>60</td>\n",
       "      <td>良</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-01-03</td>\n",
       "      <td>2.0</td>\n",
       "      <td>-7℃</td>\n",
       "      <td>霾</td>\n",
       "      <td>东北风</td>\n",
       "      <td>1级</td>\n",
       "      <td>165</td>\n",
       "      <td>中度污染</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2019-01-04</td>\n",
       "      <td>2.0</td>\n",
       "      <td>-7℃</td>\n",
       "      <td>晴</td>\n",
       "      <td>西北风</td>\n",
       "      <td>2级</td>\n",
       "      <td>50</td>\n",
       "      <td>优</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2019-01-05</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-8℃</td>\n",
       "      <td>多云</td>\n",
       "      <td>东北风</td>\n",
       "      <td>2级</td>\n",
       "      <td>29</td>\n",
       "      <td>优</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2019-01-06</td>\n",
       "      <td>3.0</td>\n",
       "      <td>-7℃</td>\n",
       "      <td>多云</td>\n",
       "      <td>东南风</td>\n",
       "      <td>1级</td>\n",
       "      <td>84</td>\n",
       "      <td>良</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          ymd  bWendu yWendu tianqi fengxiang fengli  aqi aqiInfo  aqiLevel  \\\n",
       "0  2019-01-01     1.0   -10℃   晴~多云       西北风     1级   56       良         2   \n",
       "1  2019-01-02     1.0    -9℃     多云       东北风     1级   60       良         2   \n",
       "2  2019-01-03     2.0    -7℃      霾       东北风     1级  165    中度污染         4   \n",
       "3  2019-01-04     2.0    -7℃      晴       西北风     2级   50       优         1   \n",
       "4  2019-01-05     0.0    -8℃     多云       东北风     2级   29       优         1   \n",
       "5  2019-01-06     3.0    -7℃     多云       东南风     1级   84       良         2   \n",
       "\n",
       "   quarter  \n",
       "0        1  \n",
       "1        1  \n",
       "2        1  \n",
       "3        1  \n",
       "4        1  \n",
       "5        1  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(6)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. 调用seaborn绘制boxplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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8L93d3fnO9/5Tv7lX/6lwkWUrKWlJXfeeWfuvvvuzJgxI+985zurnkShbr311lx//fXZvHlz1VMOec78ApVYv359Pvaxj+XGG2/MCSecUPUcCnbddddlzZo12bx5c+6///6q51CgBx54IBMmTMjkyZOrnlIEZ36BuvvRj36U6667LnPnzk1nZ2fVcyjUs88+m927d+fd7353Dj/88HR0dOSZZ56pehYFWrJkSXp7e3PxxRenv78/r7zySv7u7/4uc+fOrXraIUn8AnW1efPmfOpTn8qCBQuc5aBSmzZtyp133jl82c2yZcty6aWXVryKEr3+lUYefPDBrF27VvjWkPgF6urrX/96du3alXnz5g2/7YorrsiVV15Z4SpKNH369Kxbty6XXHJJmpqa0tHR4W8ioAANQ0NDQ1WPAACAevADbwAAFEP8AgBQDPELAEAxxC8AAMUQvwAAFEP8AhyCPvaxj2X79u1VzwA46IhfgEPQqlWrqp4AcFBykwuAitxxxx155JFHctRRR+WMM87Ik08+mWOPPTYnn3xyPv7xjydJ5syZM/z4+9//fv7pn/4pu3fvzvbt23PJJZfk05/+dB5//PHcfvvtGTNmTH72s5/lPe95T5Lkox/9aL72ta+lsbExX/ziF7N58+bs2bMnnZ2dufbaa7Np06b88R//cU488cQ8//zzuffee9Pe3l7llwSg5sQvQAUeffTRPProo3n44YczevTo/MVf/MV+f/3Q0FDuvvvuzJs3LyeccEK2bNmSc845J7NmzUqSrF+/Pt/97ndz7LHHJnntFqnf+MY3cvTRR2fWrFn50z/905x77rnZtWtXrrnmmhx//PE59dRT88ILL+QrX/lKzjjjjJp/zgAHA/ELUIHHHnss5513XsaOHZskufzyy/ONb3zjTX99Q0ND/vEf/zE/+MEPsnjx4jz77LMZGhrKz3/+8yTJhAkThsP39V555ZX88Ic/TH9/f+64447htz399NM59dRT09zcnNNOO23kP0GAg5T4BajA6NGj8/q7y7e0tCR5LXJf//Y9e/YkeS1YP/zhD+eDH/xgzjjjjFx66aX57ne/O/xrx4wZ84bHGRwczNDQUL71rW/l8MMPT5Js3749o0ePzksvvZRRo0aludm3AqAcfuANoAJnn312li5dmv7+/gwODubhhx9Okhx11FF58sknkyRbtmzJ2rVrkyQ9PT3ZuXNnPv3pT+fcc8/N448/nt27d2dwcPANP35TU1P27t2bsWPH5rTTTsvChQuTJDt27MiVV16ZZcuW1f6TBDgI+eM+QAXe//73Z9asWZk5c2ZGjx49fMnCVVddlc9+9rM5//zzc9xxx+Wss85Kkpxyyik5++yz86EPfSijRo3Ku971rpx00knp6enJqFGjfuXjz5gxI1dddVX+/u//Pl/+8pdz2223paurK7t3786FF16Yiy66KJs2barr5wxwMGgYev3frwFQiaVLl+ab3/xm7r333qqnABzSXPYAAEAxnPkFAKAYzvwCAFAM8QsAQDHELwAAxRC/AAAUQ/wCAFAM8QsAQDH+L3LeEQtU2mXLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 842.4x595.44 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = sns.boxplot(x=\"quarter\", y=\"bWendu\", data=df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
